package com.icrazy.platform.dao;

import java.util.List;

import com.icrazy.platform.common.page.Page;

/**
 * 数据库操作基础接口
 * 
 * @author xiaofeng
 * @since 1.0 2012-03-15
 */
@SuppressWarnings("rawtypes")
public interface PlatformDao {

	/**
	 * 新增
	 * 
	 * @param id
	 *            namespace或namespace.id
	 * @param obj
	 *            需要保存的对象
	 */
	void insert(String id, Object obj);

	/**
	 * 修改
	 * 
	 * @param id
	 *            namespace或namespace.id
	 * @param obj
	 *            需要修改的对象
	 */
	void update(String id, Object obj);

	/**
	 * 删除
	 * 
	 * @param id
	 *            namespace或namespace.id
	 * @param obj
	 *            需要修改的对象
	 */
	void delete(String id, Object obj);

	/**
	 * 查询一行记录
	 * 
	 * @param id
	 *            namespace或namespece.id
	 * @param obj
	 *            查询条件
	 * @return Object
	 */
	Object queryForObject(String id, Object obj);

	/**
	 * 查询集合
	 * 
	 * @param id
	 *            namespace或namespece.id
	 * @param obj
	 *            查询条件
	 * @return List
	 */
	List queryForList(String id, Object obj);

	/**
	 * 分页查询
	 * 
	 * @param id
	 *            namespace或namespece.id
	 * @param obj
	 *            查询条件
	 * @param page
	 *            分页对象
	 * @return List
	 */
	List queryForPage(String id, Object obj, Page page);
}
